EXTS = -XMultiParamTypeClasses -XDeriveFunctor -XDeriveFoldable -XDeriveTraversable -XDoRec -XFlexibleContexts -XFlexibleInstances -XScopedTypeVariables -XTypeSynonymInstances -XFunctionalDependencies
FLAGS = -package ghc -funbox-strict-fields -hidir obj -odir obj $(EXTS)
POWER = -fvia-C -optc-O3 -O2
NORMAL = -O
MAIN = Main.hs

.PHONY : all power powerr ghci zip clean

all:
	ghc --make -o zeno $(NORMAL) $(FLAGS) $(MAIN)

power:
	ghc --make -o zeno $(POWER) $(FLAGS) $(MAIN)

powerr:
	ghc --make -o zeno -fforce-recomp $(POWER) $(FLAGS) $(MAIN)

ghci:
	ghci -fobject-code $(NORMAL) $(FLAGS) $(MAIN)

zip:
	rm Zeno.zip
	zip Zeno.zip *.hs *.y Zeno/*.hs makefile

clean:
	rm -rf obj/

